草庐IT

c++ - std::make_pair 与 c++ 11

全部标签

windows - Make 忽略了编译器标志

我有一个可以在Ubuntu上毫无问题地编译的项目。https://github.com/avalon-lang/avaloni/blob/master/Makefile处的Makefile是我正在努力适应Windows10的那个。我安装了MingW-w64和GNUMake-32。当我针对Makefile运行make时,传递给编译器的CFLAGS和其他标志不会显示,在回显输出中留下空格而不是编译器标志。因此,找不到成功编译所需的文件。我尝试用它们的内容替换变量CFLAGS、SYSINC和INC,但没有任何改变。它们只是被忽略,就好像make删除了它们一样。cc:=g++cflags:=-

c - Detecting if stdout is a console with MS Visual compilation, mingw64提供的console

我维护一个生成二进制数据的命令行实用程序。请求时,数据可以重定向到stdout。这在stdout被重定向到管道或文件时有效,但当stdout是一个控制台时,情况就不太一样了,因为它会垃圾控制台。为了保护用户免受此类错误,程序必须检测stdout是否是控制台,并在是时退出。现在,这并不是什么新鲜事,快速浏览一下Internet就会发现多种解决方案。主要缺点是没有“通用”方法,VisualStudio需要自己的风格。我用于Visual的控制台检测器有一个缺陷:它没有检测到stdout是一个控制台当控制台由mingw提供时,我认为这意味着它是mintty。这里是相关的代码部分:#ifdefi

c - 我在哪里放置用于 Windows、Mac 和 Linux 的 C 库

我已经查看了几个地方以找出在Mac上放置文件的位置,似乎将它们放置到/usr/lib/libmylib.dylib中。和/usr/include/mylib.h是正确的位置,而不是在HOME目录或/usr/local/lib中.(这是针对用户在其计算机上安装的东西)。请告诉我这是否正确。然后我剩下的问题是在Windows和Linux上放置C库的等效(即最佳)位置。寻找here对于Windows表示%windir%\system32或%SystemRoot%\winsxs.但随后他们似乎开始说,由于多种原因,它仍然是一个糟糕的地方。所以我不确定。然后剩下的就是如何为Linux做.似乎与M

c++ - 使用 GetGuiResources

在WinMain的开始和最后一次返回之前使用GetGuiResources(GetCurrentProcess(),GR_GDIOBJECTS)是个好主意吗?特别是,我忘记释放的对象?我目前还想知道为什么我的程序中的第一个调用在还没有窗口时返回4。 最佳答案 在大多数情况下,使用processexplorer就足够了.保持窗口打开,显示进程的GDI句柄(右键单击列,选择“选择列”,然后选中“进程内存”选项卡中的“GDI对象”复选框)。在运行您的应用程序时,请注意GDI句柄的数量-如果它增加并且再也回不去,您就知道存在泄漏。

c - 在 WTL/Win32 应用程序中如何处理右键单击 TreeView ?

我有一个用ATL编写的基本应用程序,使用VS2008的向导。我在应用程序的左侧有一个TreeView。我看到了如何(痛苦地)添加树项目。问题是如何在鼠标右键单击时显示菜单?如何在可以选择的每个项目上捕获任何点击事件? 最佳答案 您应该检测到WM_CONTEXTMENUWindows消息specifyingahandlerinyourmessagemap.在处理程序中,您可以显示上下文菜单。然后,您还需要确保在从上下文菜单中选择命令时处理消息映射中的菜单命令。使用COMMAND_HANDLER这部分的消息映射中的宏。

c - 可以采用大于 255 个字符的路径的 Windows 全路径 API 的替代方案!

windows的_fullpathAPI取相对路径,给出对应的绝对路径。但是,如果相对路径大于255个字符,它将失败。在Windows中有没有其他API可以将相对路径转换为绝对路径并且不存在上述问题? 最佳答案 我认为最接近的是GetFullPathNamefunction.您可以显式调用它的Unicode版本并将\\?\添加到路径以允许超过MAX_PATH个字符。 关于c-可以采用大于255个字符的路径的Windows全路径API的替代方案!,我们在StackOverflow上找到一个

c - 如何检查程序是否已在当前登录 session 期间执行? ( Windows )

在我正在开发的一个应用程序中(用C语言),在执行主应用程序之前必须先运行一个加载器应用程序。我已经做到了,因此主应用程序在启动时将加载器应用程序作为子应用程序运行,以便自动执行此任务。这一切都很好,除了加载器应用程序只需要在用户当前登录session期间运行一次以使主应用程序正常工作,并且每次主应用程序执行时都必须运行它是一个真正的痛。所以我要问的是:有没有办法检查加载程序是否已经使用某些Windows或C功能运行?理想情况下,这样的事情会很棒,虽然我不知道它是否可能:if(thisapp.exehasBeenExecuted)return;elsespawnl(app_path,ap

c++ - 显示 Windows 用户对话框

您如何(以编程方式)显示Windows本地用户/组对话框?在Vista中,它通常在控制面板-管理工具-计算机管理-本地用户和组下。只要WindowsXp及更高版本支持,具有相同功能(添加/删除用户/组)的类似类型的对话框也是可以接受的。Delphi代码会很棒,虽然不是必需的! 最佳答案 听起来您想要“目录对象选择器”对话框,记录在此处:http://msdn.microsoft.com/en-us/library/ms676973(v=VS.85).aspx它适用于Windows2000或更高版本。这里有一些示例代码(C++):ht

c - 使用 C 在 Windows 中打印带有千位分隔符的整数

我想这个问题是不言自明的。我正在使用printf和friend(snprintf等)来显示一些在数百万或数十万范围内的内存统计信息。以我懒惰的思维方式读取格式为“1,523,556”的数字比“1523556”容易得多。我已经尝试设置语言环境并在格式说明符(%'d和%'llu)之前使用撇号标志,但撇号显然是SUS的标准,所以它可能对我在Windows下不起作用。是否有特定于Windows的API来执行此操作?我正在使用PellesC并直接使用ANSIC99进行编程。**编辑**阅读答案和相关的MSDN页面后,我明白了为什么.NET是现在Windows编程的首选方法。它简化了大量的API工

c - 检测 Windows 中的总 RAM 变化

如果系统RAM总量发生变化,Windows中是否有回调通知我的应用程序? 最佳答案 如果您可以获取_InstanceCreationEvent,您也许可以通过WMI执行此操作和_InstanceDeletionEvent上课Win32_PhysicalMemory.有示例代码here(WMI不适合在C或C++中使用,抱歉-C#会更容易)。只需在此处使用Win32_PhysicalMemory而不是Win32_Process使您监听的查询:hres=pSvc->ExecNotificationQueryAsync(_bstr_t("W